const express = require('express')
const router = express.Router()
const jwt = require('../utils/token')
const User = require('../model/user')
// 登录
router.post('/user/login', async (req, res, next) => {
  const { username, password } = req.body
  /*
    登录:
    1.查找是否存在,不存在提示该用户名不存在
    2.若存在,更新登录时间
    3.获取token
  */
  const hasUser = await User.findOne({ username, password })
  if (!hasUser) {
    return res.send({
      code: -1,
      msg: '账号或密码错误',
      data: [],
    })
  }
  // 更新登录时间
  const data = await User.updateOne({}, { updatetime: new Date() })
  // 修改成功
  if (data.ok == 1) {
    // 登录成功,返回token
    let token = jwt.generateToken({ username })
    const state = await User.updateOne({}, { token: token })
    if (state) {
      return res.send({
        code: 1,
        msg: '登录成功',
        token: token,
      })
    }
  } else {
    return res.send({
      code: -1,
      msg: '账号或密码错误,请重试',
    })
  }
})

// 根据token获取用户信息
router.get('/user/info', async (req, res) => {
  const token = req.query.token
  const info = await User.findOne({ token })
  try {
    if (info) {
      return res.send({
        code: 1,
        msg: '获取用户信息成功',
        data: info,
      })
    } else {
      return res.send({
        code: -1,
        msg: 'token异常',
      })
    }
  } catch (err) {
    console.log('11111' + err)
  }
})

// 登出,删除token
router.post('/user/logout', async (req, res) => {
  const data = await User.updateOne({}, { token: '' })
  if (data.ok == 1) {
    return res.send({
      code: 1,
      msg: '退出登录',
    })
  } else {
    return res.send({
      code: -1,
      msg: '服务器异常',
    })
  }
})
module.exports = router
